﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Formation_Entreprise
{
    public partial class frmRapportConseillers : Form
    {
        public frmRapportConseillers()
        {
            InitializeComponent();
        }

        private void frmRapportConseillers_Load(object sender, EventArgs e)
        {
            // Initialisation de l'appel du formulaire parent
            frmMain formMain = (frmMain)this.MdiParent;
            // Initialiser le progressbar pour load des entreprises
            int nbreconseiller = AccesTableConseiller.ListerConseillersActif().Count;
            formMain.SetProgressBarValue(nbreconseiller);
            formMain.lblStatut.Text = "Chargement des conseillers...";
            // Population du Combo Box Conseiller
            for (int i = 0; i < nbreconseiller; i++)
            {
                formMain.PerformStepProgressBar();
                this.cbConseillers.Items.Add(AccesTableConseiller.ListerConseillersActif()[i].Nom);
            }
            formMain.lblStatut.Text = "Chargement effectué avec succès!";
            formMain.ResetToolStrip();
        }

        private void btnAnnuler_Click(object sender, EventArgs e)
        {
            //Fermeture du formulaire
            this.Close();
        }

        private void btnRapport_Click(object sender, EventArgs e)
        {
            // Création de la variable compteur total
            double total = 0;
            int currentCell = 3;
            string nomConseiller;
             
            // Obtention du nom de conseiller
            try
            {
                nomConseiller = this.cbConseillers.SelectedItem.ToString();
            }
            catch (NullReferenceException NullEx)
            {
                return;
            }
            
            // Création de l'objet "CreationExcelDocument"
            CreateExcelDocument CED = new CreateExcelDocument();


            // Creation d'un Dictionnaire avec toutes les données nécessaire
            // comprise entre les deux dates
            Dictionary<string, double> dic = Rapports.ObtenirRapportConseillers(nomConseiller);

            // ÉCRITURE de l'entête dans le fichier Excel
            CED.createCell(1, 1, "Rapport financier pour " + nomConseiller, "A1", "D1", 4, "GRAY", true, 10, "");
            CED.createCell(2, 1, "Date", "A2", "B2", 2, "GRAY", true, 10, "");
            CED.createCell(2, 3, "Montant ($)", "C2", "D2", 2, "GRAY", true, 10, "");

            // POUR CHAQUE Montant
            foreach (KeyValuePair<string, double> p in dic)
            {
                // ÉCRITURE d'une cellule dans le document Excel et écriture du montant
                // dans la cellule adjascente
                CED.createCell(currentCell, 1, p.Key, "A" + currentCell, "B" + currentCell, 2, "", true, 10, "");
                CED.createCell(currentCell, 3, p.Value.ToString("$#,##0.00"), "C" + currentCell, "D" + currentCell, 2, "", true, 10, "");

                currentCell++;
                total += p.Value;
            }

            // ÉCRITURE de la ligne finale avec le grand total
            CED.createCell(currentCell, 1, "Total:", "A" + currentCell, "B" + currentCell, 2, "GRAY", true, 10, "");
            CED.createCell(currentCell, 3, total.ToString("$#,##0.00"), "C" + currentCell, "D" + currentCell, 2, "GRAY", true, 10, "");
        }
    }
}
